Missing values/wrong coordinates
- 181 in the MFL (this includes NA’s and coordinates that did not intersect with admin levels) and 9 in the WHO data. None are the same facilities/share same names.
# MFL - 1546 before omitting NA's, then 1427.
# 62 coordinates did not intersect with admin data - now 1365
# using anti_join() to see which facilities were omitted
df_malawi_facilities_MFL = as.data.frame(malawi_facilities_MFL) # convert to data frame to use in anti_join
NA_MFL = anti_join(malawi_MFL, df_malawi_facilities_MFL) # 119 missing coordinates in MFL
# adding the number of wrong coordinates - 61
intersect_admin1_MFL = st_intersection(malawi_facilities_MFL, malawi_admin1) # returns data frame of matches
intersect_admin1_MFL = as.data.frame(intersect_admin1_MFL) # convert to data frame to use in anti_join
no_intersect_admin1_MFL = anti_join(malawi_facilities_MFL, intersect_admin1_MFL) # working out which facilities did not intersect
no_intersect_admin1_MFL_1 = no_intersect_admin1_MFL[ ,-c(10, 11)]
NA_MFL_1 = NA_MFL[, -c(10, 11)]
no_intersect_admin1_MFL_1 = st_set_geometry(no_intersect_admin1_MFL_1, NULL)
names(NA_MFL_1)[3] = "COMMON.NAME"
names(NA_MFL_1)[9] = "DATE.OPENED"
NA_MFL = rbind(NA_MFL_1, no_intersect_admin1_MFL_1) # combined dataframe of NA and wrong coordinates in MFL
# WHO - 648 with 9 missing coordinates, now 639
NA_WHO = anti_join(malawi_WHO, new_malawi_WHO)
Proportion that are privately owned in the MFL data
- 30.3% of facilities are privately owned (433/1427)
- Top 3 types are clinics (356), dispensaries (45) and hospitals (16)
private_MFL = filter(malawi_facilities_MFL, OWNERSHIP == "Private")
# 433 private facilities, 30.3%
# which types are private?
private_MFL$TYPE = as.factor(private_MFL$TYPE)
types_private_MFL = as.data.frame(table(private_MFL$TYPE))
types_private_MFL
## Var1 Freq
## 1 Clinic 356
## 2 Dispensary 45
## 3 Health Centre 9
## 4 Health Post 1
## 5 Hospital 16
## 6 Private 6
Proportion of facility types in each district
# district per facility (does not include the 62 facilities)
intersect_admin2_MFL = st_intersection(malawi_facilities_MFL, malawi_admin2)
intersect_admin2_MFL$TYPE = as.factor(intersect_admin2_MFL$TYPE)
intersect_admin2_MFL$shapeName = as.factor(intersect_admin2_MFL$shapeName)
by_district_MFL = as.data.frame(table(intersect_admin2_MFL$TYPE, intersect_admin2_MFL$shapeName))
head(by_district_MFL)
## Var1 Var2 Freq
## 1 Central Hospital Balaka 0
## 2 Clinic Balaka 10
## 3 Dispensary Balaka 1
## 4 District Hospital Balaka 1
## 5 Health Centre Balaka 11
## 6 Health Post Balaka 4
# pie charts for each district
balaka_MFL = filter(by_district_MFL, Var2 == "Balaka")
balaka_MFL = filter(balaka_MFL, Freq > 0)
balaka_MFL = balaka_MFL[ , -c(2)]
## plot
balaka_plot_MFL = sunburst(balaka_MFL)
balaka_plot_MFL